# Maintainer: Noel Kuntze <noel.kuntze@contauro.com>
pkgname=kopano-webapp-filepreviewer
pkgdesc="filepreviewer plugin for kopano-webapp"
pkgver=2.2.0
pkgrel=2
# ppc64le and riscv64 blocked by libmdbx -> kopano-core -> kopano-webapp
arch="noarch !ppc64le !riscv64"
url="https://stash.kopano.io/projects/KWA/repos/filepreviewer/browse"
license="AGPL-3.0-only"
options="!check" # No test suite
depends="kopano-webapp"
# kopano-core necessary for mapi php module
makedepends="apache-ant openjdk8 kopano-webapp-src kopano-core"
source="
	kopano-webapp-filepreviewer-$pkgver.zip::https://stash.kopano.io/rest/api/latest/projects/KWA/repos/filepreviewer/archive?at=refs%2Ftags%2Fv$pkgver&format=zip
"

_pluginname="${pkgname//kopano-webapp-/}"

builddir="$srcdir/"

#helper function
unpack() {
	local u
	verify
	initdcheck
	mkdir -p "$srcdir"
	local gunzip="$(command -v pigz || echo gunzip)"
	[ $gunzip = "/usr/bin/pigz" ] && gunzip="$gunzip -d"
	for u in $source; do
		local s
		local filename="$(filename_from_uri $u)"
		local new_root_dir="$builddir/${filename%%-[0-9]*}"
		if is_remote "$u"; then
			s="$SRCDEST/$filename"
		else
			s="$startdir/$u"
		fi
		case "$s" in
			*.tar)
				msg "Unpacking $s..."
				mkdir -p "$new_root_dir"
				tar -C "$new_root_dir" -xf "$s" ;;
			*.tar.gz|*.tgz)
				msg "Unpacking $s..."
				mkdir -p "$new_root_dir"
				$gunzip -c "$s" | tar -C "$new_root_dir" -x ;;
			*.tar.bz2)
				msg "Unpacking $s..."
				tar -C "$new_root_dir" -jxf "$s" ;;
			*.tar.lz)
				msg "Unpacking $s..."
				tar -C "$new_root_dir" --lzip -xf "$s" ;;
			*.tar.lzma)
				msg "Unpacking $s..."
				unlzma -T 0 -c "$s" | tar -C "$new_root_dir" -x  ;;
			*.tar.xz)
				msg "Unpacking $s..."
				local threads_opt
				if [ "$(readlink -f "$(command -v unxz)")" != "/bin/busybox" ]; then
					threads_opt="--threads=0"
				fi
				unxz $threads_opt -c "$s" | tar -C "$new_root_dir" -x ;;
			*.zip)
				msg "Unpacking $s..."
				unzip -n -q "$s" -d "$new_root_dir" ;;
		esac
	done
}

prepare() {
	cp -R /usr/share/src/kopano-webapp/ kopano-webapp
	find "kopano-webapp/plugins/" -type d -mindepth 1 -maxdepth 2 -print0 | xargs -0 -- rm -rf
	mv $pkgname kopano-webapp/plugins/$_pluginname
	default_prepare
}

build() {
	cd kopano-webapp
	ant tools
	cd plugins/$_pluginname
	ant deploy -Droot-folder="$(pwd)/../../" -Dtarget-folder="$(pwd)/../../deploy/plugins"
}

package() {
	cd "$srcdir/kopano-webapp/deploy/plugins/$_pluginname/"
	# /usr/share
	mkdir -p "$pkgdir/usr/share/webapps/kopano-webapp/plugins/$_pluginname/"
	cp -R -- * "$pkgdir/usr/share/webapps/kopano-webapp/plugins/$_pluginname/"
	rm -f "$pkgdir/usr/share/webapps/kopano-webapp/plugins/$_pluginname/config.php"

	# /var/lib
	install -dm 0700 -o kopano-webapp -g root "$pkgdir/var/lib/kopano-webapp/plugins/$_pluginname"
	# /etc
	if [ -e "config.php" ]; then
		## perform settings
		# convert windows line break to unix: http://stackoverflow.com/questions/11680815/removing-windows-newlines-on-linux-sed-vs-awk
		sed -i -e $'s/\r//' config.php
		install -dm 0750 -g kopano-webapp "$pkgdir/etc/webapps/kopano-webapp/plugins/$_pluginname/"
		## config mains
		install -m 0750 -g kopano-webapp config.php "$pkgdir/etc/webapps/kopano-webapp/plugins/$_pluginname/config.php"
		ln -sf "/etc/webapps/kopano-webapp/plugins/$_pluginname/config.php" "$pkgdir/usr/share/webapps/kopano-webapp/plugins/$_pluginname/config.php"
		## config examples
		install -m 0750 "$pkgdir/etc/webapps/kopano-webapp/plugins/$_pluginname/config.php" "$pkgdir/etc/webapps/kopano-webapp/plugins/$_pluginname/config.example.php"
	fi
}
sha512sums="
d56aaae46153bd2350dc13a67a3c75305db12b88047e9bd038dcfc2bae8a991af4c4913641641ab1088548fb3dc49a02f402a2a3aa01640b08d0286b27175950  kopano-webapp-filepreviewer-2.2.0.zip
"
